# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

component_engine = ('Core', 'JavaScript Engine')
component_gc     = ('Core', 'JavaScript: GC')
component_intl   = ('Core', 'JavaScript: Internationalization API')
component_jit    = ('Core', 'JavaScript Engine: JIT')
component_stl    = ('Core', 'JavaScript: Standard Library')

with Files('../public/**'):
    BUG_COMPONENT = component_engine
with Files('*'):
    BUG_COMPONENT = component_engine

with Files('wasm/**'):
    BUG_COMPONENT = component_jit
with Files('builtin/**'):
    BUG_COMPONENT = component_stl
with Files('ctypes/**'):
    BUG_COMPONENT = ('Core', 'js-ctypes')
with Files('gc/**'):
    BUG_COMPONENT = component_gc
with Files('jit/**'):
    BUG_COMPONENT = component_jit

# File-specific metadata
for gcfile in ['jsgc*', 'devtools/rootAnalysis', 'devtools/gc-ubench', 'devtools/gctrace']:
    with Files(gcfile):
        BUG_COMPONENT = component_gc
for header in ('GCAnnotations.h', 'GCAPI.h', 'HeapAPI.h', 'RootingAPI.h', 'SliceBudget.h', 'SweepingAPI.h', 'TraceKind.h', 'TracingAPI.h', 'WeakMapPtr.h'):
    with Files('../public/' + header):
        BUG_COMPONENT = component_gc

for stlfile in ['jsarray.*', 'jsbool*', 'jsdate.*', 'jsnum.*', 'json.*', 'jsstr.*']:
    with Files(stlfile):
        BUG_COMPONENT = component_stl

with Files('builtin/Intl*'):
    BUG_COMPONENT = component_intl
with Files('builtin/make_intl_data.py'):
    BUG_COMPONENT = component_intl

with Files('../public/TrackedOptimizationInfo.h'):
    BUG_COMPONENT = component_jit

TEST_DIRS += ['jsapi-tests', 'tests', 'gdb']